import { ButtonType } from "@/components/Button/interface/";
import { FormType } from "@/components/Form/interface/";

// ! 弹窗
export namespace AlertType {
  type Type = "hint" | "form" | "slot";

  type Event = (cb: ButtonType.Callback) => void;

  export interface Button extends ButtonType.Props {
    event?: Event; // 事件
  }
  //   汇总
  export interface Props {
    title: string; // 提示
    type: Type; // 弹窗类型
    show: boolean; // 显示弹窗
    hint?: string; // 提示内容
    isHiddenButton?: boolean; // 显示按钮
    width?: string; // 宽度
    cancelButton?: Button; // 取消按钮配置
    successButton?: Button; // 确定按钮配置
    id?: string; // 标记，多个弹窗时，通过 id 确定
    onClickModal?: boolean; // 是否允许点击模态框
    destroyOnClose?: boolean; // 当关闭 Dialog 时，销毁其中的元素
    form?: FormType.Props; // 表单项
  }
}
